Access to media bites

ABSTRACT

Accessing media data in bites, including: receiving a request from a client to access a media item, and determining an address of the requested media item, wherein the address indicates a location where the media item is stored; determining an identification number of a piece of the media item selected by the client; updating the address of the media item by combining the address with the identification number of the piece of the media item selected by the client; valuating the piece of the media item selected by the client, and sending a valuated price to the client; and providing access to the requested media item using the updated address of the media item when a payment for the valuated price is received from the client.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a continuation application of co-pending U.S.patent application Ser. No. 13/228,269 (filed Sep. 8, 2011), whichclaimed the benefit of priority under 35 U.S.C. § 119(e) of U.S.Provisional Patent Application No. 61/381,014, filed Sep. 8, 2010,entitled “Movie Bites.” The disclosures of the above-referencedapplications are incorporated herein by reference.

BACKGROUND Field of the Invention

The present invention relates to electronic media data, and morespecifically, to consuming media data in bites.

Background

The distribution of electronic media data (e.g., music, videos, movies,and television shows) may be accomplished using various methodologies.For example, entire media data files may be transferred from a mediadata server to a client electronic device. Alternatively, a media datastream may be established between the media data server and the clientelectronic device.

SUMMARY

Implementations of the present invention provide for consuming mediadata in bites. In one implementation, a method of accessing media datain bites is disclosed. The method includes: receiving a request from aclient to access a media item, and determining an address of therequested media item, wherein the address indicates a location where themedia item is stored; determining an identification number of a piece ofthe media item selected by the client; updating the address of the mediaitem by combining the address with the identification number of thepiece of the media item selected by the client; valuating the piece ofthe media item selected by the client, and sending a valuated price tothe client; and providing access to the requested media item using theupdated address of the media item when a payment for the valuated priceis received from the client.

In another implementation, a media access controller is disclosed. Thecontroller includes: a media access map to receive a media accessrequest for a media item from a client device, and to output an addressfor the requested media item; a processor to receive the address of themedia item and generate a media access menu which is presented to theclient device to enable the client device to select a piece of the mediaitem to access; a combiner to update the address of the media item bycombining the address with a selection of the piece of the media itemfrom the client device; a valuator to valuate the piece of the mediaitem selected by the client, and to send a valuated price to the clientdevice; and an access interface to provide access to the requested pieceof the media item using the updated address of the media item when apayment for the valuated price is received from the client device.

In another implementation, a non-transitory tangible storage mediumstoring a computer program for accessing media data in bites isdisclosed. The computer program comprises executable instructions thatcause a computer to: receive a request from a client to access a mediaitem, and determining an address of the requested media item, whereinthe address indicates a location where the media item is stored;determine an identification number of a piece of the media item selectedby the client; update the address of the media item by combining theaddress with the identification number of the piece of the media itemselected by the client; valuate the piece of the media item selected bythe client, and sending a valuated price to the client; and provideaccess to the requested media item using the updated address of themedia item when a payment for the valuated price is received from theclient.

Other features and advantages of the present invention will become morereadily apparent to those of ordinary skill in the art after reviewingthe following detailed description and accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The details of the present invention, both as to its structure andoperation, may be gleaned in part by study of the accompanying drawings,in which:

FIG. 1 is a flowchart illustrating a technique for consuming media datain bites using a media access controller in accordance with oneimplementation of the present invention;

FIG. 2 is a functional flow diagram illustrating an example process forconsuming media data in bites in accordance with one implementation ofthe present invention;

FIG. 3 is a functional block diagram of a media access controller inaccordance with one implementation of the present invention;

FIG. 4A illustrates a representation of a computer system and a user;and

FIG. 4B is a functional block diagram illustrating the computer systemhosting the media access control in accordance with one implementationof the present invention.

DETAILED DESCRIPTION

Certain implementations as disclosed herein provide for consuming mediadata in bites using a media access controller. In reading thisdescription it will become apparent how to implement the invention invarious implementations and applications. Although variousimplementations of the present invention will be described herein, it isunderstood that these implementations are presented by way of exampleonly, and not limitation. As such, this detailed description of variousimplementations should not be construed to limit the scope or breadth ofthe present invention.

When an item of media is available for access, a media access controllercan be referenced for media access in bites. In one implementation, aserver stores at least one media item as a whole and in pieces or bites.For example, the pieces can be stored separately from the whole suchthat the media item would be stored twice. In another example, theserver stores a table of indices or pointers into the media item todefine pieces of the media item. A user can access, view and listen tomedia items available from the server through a compatible clientapplication on a client device (e.g., PC, game console, or othernetwork-enabled device). The server defines the choices to present tothe user. Alternatively, the client device may define the choices or mayselect from among the possible choices provided to the server to presenta subset to the user. In this alternate implementation, the clientdevice presents the option to buy access to the media item as a whole orto one or more pieces of the media item. The user can then choosewhether to pay to access the media item in pieces or all at once. If theuser buys access to pieces, the user can continue to buy access to theremaining pieces one at a time, in groups, or to the remaining pieces.

Similarly, the client device can present different rights options forthe pieces or the media item as a whole. For example, the user canchoose to keep the pieces unlocked and accessible indefinitely, or onlyfor a limited period. The client device can also present differentpricing depending on purchase activity. For example, if the media itemas a whole costs $20 and is divided into 15 pieces each costing $2 (fora total cost of $30 if all pieces are purchased individually), when auser has paid $20 for the pieces obtained so far, the client can offerthe remaining pieces free of charge or discounted. In another example,if a user buys access to a first media item as a whole, a piece ofanother media item may be offered at a discount or for free. In anotherexample, pieces of a media item can be offered at a discount or for freeto users participating in a subscription service or loyalty program.

In one implementation, the client device plays multiple pieces of amedia item seamlessly transitioning between the pieces. In anotherimplementation, the client device combines the pieces together to formlarger pieces or a single piece (e.g., after all the pieces have beenpurchased). Similarly, software can be provided that allows a clientdevice to combine pieces from multiple items of media to createcompilations.

In another implementation, a user can select an option to pay for theportion of content accessed as in a ‘pay-as-you-go’ scheme. In oneexample, a media item is divided into pieces and the pieces aredelivered to the client device as needed. Initially, the first piece isdelivered and the client device plays and/or displays the first piece ofthe media item. When a certain threshold is reached, the next piece isdelivered and the user can continue to seamlessly view the media item.If the user stops playback, no further pieces are delivered. The user ischarged only for the pieces actually delivered or played (e.g., beyond athreshold). The client device can notify the user in various ways of anew piece (and a new charge associated with the new piece) before itstarts. For example, the client device can issue and display a pop-upwindow, icon, or message, or present a dialog box or other confirmationto proceed. In this example, a default setting would be to proceed andcharge, with alternative settings including stopping the playbackwithout authorization or charging based on user preference settings. Toencourage the completion of the purchase of the pieces, the user couldbe offered a discount to purchase access to the rest of the media item.Alternatively, the offered discount could be a discount which can beapplied against a different item of media. In another example, theentire media item is delivered initially (though playback can beginbefore completion) but the playback progress through the media item istracked. The user is charged for the portion played or the entire chargeis paid up front but a refund (or “return”) is applied for the unusedportion (which would also be locked to prevent further playback withoutpayment). In a subscription model, a subscriber may be allowed a certainnumber of “returns” of purchased or rented content to receive a refundfor unused portions.

The content server and storefront server may be the same system orseparate systems. Similarly, the servers can be operated by the same ordifferent companies. Multiple storefront services could access the samecontent server/service, or one storefront could access multiple contentservers/services (or a many-to-many relationship could be used). Thecontent service and storefront service can track the purchasing activityand patterns of consumers, individually and in the aggregate. Forexample example, a content service tracks which pieces have beenaccessed or purchased for an account and can provide missing pieces(e.g., the next unviewed piece) to a different device accessing the sameaccount. The client device can also track the local usage patterns. Forexample, a service can track the conversion pattern (e.g., converting asale of a segment to a sale of the entire media item) for variouscriteria, such as consumer demographic, time, price, genre, consumerhistory, etc. Based on that analysis, a user can be provided withrecommendations or promotions that are customized to the user or thatthe service provider desires to push.

There are advantages to offering and delivering a media item, such as amovie, in pieces rather than as whole. Transferring and storing piecesare easier. For example, transferring and storing a 20 MB or 200 MBpiece of a 2 GB movie across a network requires less bandwidth and lessstorage capacity than transferring and storing the entire 2 GB in onetransaction. Sending the media pieces over time also spreads thedistribution load over time and provides the pieces closer in time towhen the pieces are actually needed. Further, a piece of media item canbe offered at a lower price and so may be more attractive to purchase,such as in impulse buying. The initial piece can then serve as a sampleor introduction to buying the whole. The initial piece could also beoffered for free or included as a promotional with another product(e.g., pre-loaded on a media player). In another example, a user mayonly want to access part of a movie, such as when the user has alreadyseen half of a movie and only wants to pay to see the remaining half.

FIG. 1 is a flowchart 100 illustrating a technique for consuming mediadata in bites using a media access controller in accordance with oneimplementation of the present invention. In the illustratedimplementation of FIG. 1, when media access request is detected, at box110, an address of the requested media item is determined, at box 120.Examples of media for which access requests are received include videos,images, music, television shows, texts (e.g., books or magazines), etc.In one implementation, the determined address refers to an address orpointer to the location where the whole media item stored. In anotherimplementation, the determined address refers to an address or pointerto the location where the first piece of the media item is stored.

A determination is then made, at box 130, as to whether the request formedia access is to access the media item in pieces or bites. When it isdetermined, at box 130, that the request is to access the media item inpieces or bites, the media address is updated, at box 140, by combiningthe current media address with a media bite number. For example, if themedia address for media item 123456 is determined to be ‘addr123456’,and the user has selected media bite 78, then the updated media addressfor the media bite can be ‘addr123456078’. Since three digits have beenallotted for the bite number in this example, up to 1000 bites or piecesof media 123456 can be addressed. In a further example, if the userchooses not to access the media item in pieces but as a whole, then theupdated media address can be ‘addr123456000’ which indicates that thebite number for this case is ‘000’. Although the above examples show thecombining of the current media address with a media bite number only asappending the media bite number to the end of the current media address,other ways of combining the two numbers are contemplated. For example,in one implementation, the media bite number can be appended at thefront of the current media address. In another implementation, each ofthe two numbers is generated from a function and the combination isgenerated as a convolution of the two functions.

In some implementations, accessing media items in bites includeaccessing the media items in time slices or chunks rather than inphysical pieces. For example, if a user purchases a 30 minute bite of amovie, the user can use the 30 minute bite all at once to view 30minutes worth of the movie, or view a 10 minute slice of one movie andif not satisfied, the user can then use the next 10 minute slice for adifferent movie. This allows the user to sample various media titles.Similarly, in another implementation, a user can purchase slices or timeincrements that are independent of particular content, which can then beused to access part of a media item selected at a later time. Forexample, a user could purchase a pack of six 10-minute slices and thenuse them for later selections. In one such implementation, the purchasedslices form a pool or wallet that can be used while watching content tocontinue past the end of a slice (e.g., after watching 10 minutes ofcontent the player can confirm with the user to continue watching thecontent and indicate the remaining slices in the pool, or offer thepurchase of additional slices or the purchase of the remainder of thecontent). The granularity of the slices can also vary, such as selling10 minute or 5 minute slices or selling a pool of individual minutes(similar to a pay as you go model, such as with minutes for a mobilephone). Other implementations may use additional or different bases forthe slices or increments, such as download or streaming data, scenes, orchapters (e.g., DVD chapters). In a further implementation, once theuser decides on a movie (e.g., a full-length version) to purchase, thetime slice or the movie bite is credited towards the purchase of thefull-length version of the movie. In one implementation, the user canpurchase the media bites at any time and in any order. In anotherimplementation, the user can only purchase the bites in a linear,consecutive sequence.

In another variation, each media bite is marked with a unique identifiertied to a user account or client player so that only bites with thatidentifier can be played on that player, which can be enforced by adigital rights management (DRM) system. This would prevent multipleusers from pooling and combining individual, different media bites tomake a complete full-length version of the media. In yet anothervariation, users can combine media bites with friends. For example, auser can present a media bite to a friend or another user as a gift. Inanother example, sharing bites could be a good way to do viral marketingthat uses pre-existing social networks to produce increases in brandawareness or to achieve other marketing objective, such as productsales, through self replicating viral processes. In all of theimplementations and examples described above, it should be noted thatmedia other than video can be used. For example, media can be audio,text, games, and possibly with different bases for slices or bites, suchas pages, words, levels, etc.

Once the selection is made by the user, the requested media item isvaluated, at box 150. As discussed above, there are several differentoptions for accessing a media item and thus provide several differentways the requested media item can be valuated depending on the purchaseactivity. For example, a user can download a media item in pieces thatare each two chapters long (e.g., 10% of the movie length) at a price of$2.00 each. There is also an option to buy the whole media item for asecond price. The second price may adjust depending on how much the userhas already paid. In another example, if the media item as a whole costs$20 and is divided into 15 pieces each costing $2 (total cost of $30 ifall purchased individually), when a user has paid $20 for the piecesobtained so far, the client can offer the remaining pieces free ofcharge (or discounted).

In another example, if a user buys access to a first media item as awhole, a piece of another media item may be offered at a discount or forfree. In another example, pieces of a media item can be offered at adiscount or for free to users participating in a subscription service orloyalty program. In another example, the user is charged only for thepieces actually delivered or played (e.g., beyond a threshold). Theclient device can notify the user in various ways of a new piece (and anew charge associated with the new piece) before it starts. For example,the client device can issue and display a pop-up window, icon, ormessage, or present a dialog box or other confirmation to proceed (e.g.,defaulting to proceed and charge, to stop playback withoutauthorization, or to charge based on user preference settings). Toencourage the completion of the purchase of the piece, the user could beoffered a discount to purchase access to the rest of the media item.Alternatively, the offered discount could be a discount which can beapplied against a different item of media.

In yet another example, the entire media item is delivered initially(though playback can begin before completion) but the playback progressthrough the media item is tracked. The user is charged for the portionplayed or the entire charge is paid up front but a refund (or “return”)is applied for the unused portion (which would also be locked to preventfurther playback without payment). In a subscription model, a subscribermay be allowed a certain number of “returns” of purchased or rentedcontent to receive a refund for unused portions.

Once the valuation is done and the price is set for the requested mediaitem, a determination is made, at box 160, whether the payment has beenreceived. Access to the requested media item is provided, at box 170,once the payment has been received.

FIG. 2 is a functional flow diagram 200 illustrating an example processfor consuming media data in bites in accordance with one implementationof the present invention. In the example implementation of FIG. 2, arequest 210 to access media for Media 123456 is received from client X.This request 210 is submitted to a media access map 220 for client X.This access map 220 provides addresses corresponding to all media forwhich client X has submitted requests for access. In thisimplementation, the media access map 220 indicates that Media 123456 isstored in address ‘addr123456000’. The media access map 220 alsoincludes a reference pointer to a media access menu 230 for Media123456. The media access menu 230 provides a series of inquiries to theuser to determine whether the request to access Media 123456 is toaccess it in pieces or as a whole. Further, the media access menu 230determines which piece(s) of the media item to access by providingoverviews of the pieces to the user. The overviews can be presented tothe user in thumbnails, snippets, or other method for presenting shortsummaries of the pieces to aid the user in selecting piece(s) of themedia item. Since three digits have been allotted for the bite number inthis example, Media 123456 can be divided into up to 1000 bites orpieces. Again, as discussed above, once the selection for piece(s) toaccess is made and the payment is received, the media item 240 is madeavailable for access.

FIG. 3 is a functional block diagram of a media access controller 300 inaccordance with one implementation of the present invention. In oneimplementation, the media access controller 300 is implemented inhardware configured within a server (not shown). In anotherimplementation, the media access controller 300 is implemented as astand-alone hardware device configured to reside remotely from theserver. In the illustrated implementation of FIG. 3, the media accesscontroller 300 includes a media access map 310, a combiner 320, aprocessor 330, a valuator 340, and an access interface 350. The mediaaccess controller 300 also interacts with a client device 390.

In the illustrated implementation of FIG. 3, the media access map 310receives a media access request from the client device 390. As describedabove, the media access map 220 provides addresses corresponding to allmedia for which the user using the client device 390 has submittedrequests for access. The media access map 220 also includes a referencepointer to a media access menu 230. Thus, in response to the mediaaccess request, the processor 330 within the media access controller 300sends a media access menu 230 to the client device 390, which provides aseries of inquiries to the client device 390 to determine whether therequest to access media is to access it in pieces or as a whole.Further, the media access menu 230 determines which piece(s) of themedia item to access by providing overviews of the pieces to the clientdevice 390. The overviews can be presented to the client device 390 inthumbnails, snippets, or other method for presenting short summaries ofthe pieces to aid the user in selecting piece(s) of the media item.

Once the user makes the selection to access the requested media item,the selection is received from the client device 390, and the mediaaddress is determined by the combiner 320. For example, if the userselects to access the media item as a whole, the client device 390 sendsa bite selection of ‘000’. Otherwise, if the user selects to access themedia item in pieces/bites, the selected bite number is sent. Forexample, if the user selects bite 78, a bite selection of ‘078’ isreceived by the combiner 320. Thus, as described above, the combiner 320appends the bite selection to the media address generated by the mediaaccess map 310 to generate a bite address. This address is then passedonto the access interface 350.

Once the media item selection is made by the user, the requested mediaitem is valuated by the valuator 340 and the price for the media item issent to the client device 390. The valuator 340 also sends the price tothe access interface 350 so that when the payment is received from theclient device 390, the access interface 350 compares the payment to theprice to determine if a correct payment is received. If it is determinedthat the correct payment has been received, the access interface 350provides access to the media item to the client device 390 using thebite address received from the combiner 320. In another implementation,the access interface 350 further includes a tracking unit configured todeliver the entire media item to the client device, track a playbackprogress through the media item, and charge only for the pieces of themedia item which have been played.

FIG. 4A illustrates a representation of a computer system 400 and a user402. The user 402 can use the computer system 400 to implement mediaaccess control. The computer system 400 stores and executes media accesscontrol 490.

FIG. 4B is a functional block diagram illustrating the computer system400 hosting the media access control 490 in accordance with oneimplementation of the present invention. The controller 410 is aprogrammable processor and controls the operation of the computer system400 and its components. The controller 410 loads instructions from thememory 420 or an embedded controller memory (not shown) and executesthese instructions to control the system. In its execution, thecontroller 410 provides the media access control 490 as a softwaresystem. Alternatively, this service can be implemented as separatecomponents in the controller 410 or the computer system 400.

Memory 420 stores data temporarily for use by the other components ofthe computer system 400. In one implementation, memory 420 isimplemented as RAM. In another implementation, memory 420 also includeslong-term or permanent memory, such as flash memory and/or ROM.

Storage 430 stores data temporarily or long term for use by othercomponents of the computer system 400, such as for storing data used bythe media access control 490. In one implementation, storage 430 is ahard disk drive.

The media device 440 receives removable media and reads and/or writesdata to the inserted media. In one implementation, the media device 440is an optical disc drive.

The user interface 450 includes components for accepting user input fromthe user of the computer system 400 and presenting information to theuser. In one implementation, the user interface 450 includes a keyboard,a mouse, audio speakers, and a display. The controller 410 uses inputfrom the user to adjust the operation of the computer system 400.

The I/O interface 460 includes one or more I/O ports to connect tocorresponding I/O devices, such as external storage or supplementaldevices (e.g., a printer or a PDA). In one implementation, the ports ofthe I/O interface 460 include ports such as: USB ports, PCMCIA ports,serial ports, and/or parallel ports. In another implementation, the I/Ointerface 460 includes a wireless interface for communication withexternal devices wirelessly.

The network interface 470 includes a wired and/or wireless networkconnection, such as an RJ-45 or “Wi-Fi” interface (including, but notlimited to 802.11) supporting an Ethernet connection.

A system communication path 480 (e.g., a system communication bus)provides for transfers of data and control information between the mediadevice 440, user interface 450, I/O interface 460, network interface470, storage 430, memory 420, and controller 410.

The computer system 400 includes additional hardware and softwaretypical of computer systems (e.g., power, cooling, operating system),though these components are not specifically shown in FIG. 4B forsimplicity. In other implementations, different configurations of thecomputer system can be used (e.g., different bus or storageconfigurations or a multi-processor configuration).

Various illustrative implementations of the present invention have beendescribed. However, one of ordinary skill in the art will see thatadditional implementations are also possible and within the scope of thepresent invention. For example, the media item is created to bepurchased and distributed in small pieces without a predetermined end(serial network publication). Similarly, different pricing orpromotional options or rights management options can be provided. Inanother example, the techniques can be applied to media items paid forin a rental context (e.g., access is granted only for a limited periodof time). Accordingly, the present invention is not limited to onlythose implementations described above. It is further understood that thescope of the present invention fully encompasses other implementationsthat may become obvious to those skilled in the art and that the scopeof the present invention is accordingly limited by nothing other thanthe appended claims.

1. (canceled)
 2. A method of accessing a media item in slices using aclient device, the method comprising: receiving, at a media accesscontroller, a request from the client device to access a slice of themedia item, wherein the slice of the media item is generated by dividingthe media item into time chunks and selecting at least one of the timechunks for the slice; determining an address of the media itemindicating a location where the media item is stored; determining anidentification number and a price of the slice of the media item;combining the address of the media item with the identification numberof the slice of the media item to generate a bite address of the sliceof the media item; transmitting the price for the slice of the mediaitem to the client device; receiving a selection of the slice of themedia item for the price from the client device; and activating andtransmitting an accessible code of the bite address to the client deviceupon receiving a payment of the price from the client device.
 3. Themethod of claim 2, wherein combining the address of the media item withthe identification number of the slices comprises appending theidentification number of the slice to the end of the address of themedia item.
 4. The method of claim 2, wherein activating the accessiblecode enables the client device to access the slice of the media item byclicking on the accessible code at the client device.
 5. The method ofclaim 2, further comprising enabling the client device to access andplay the slice of the media item.
 6. The method of claim 5, furthercomprising presenting to the client device an option to purchase otherslices of the media item while the client device is playing the slice ofthe media item.
 7. The method of claim 2, wherein determining the priceof the slice of the media item comprises calculating the number of thetime chunks selected for the slice of the media item.
 8. A method ofaccessing a media item in slices, the method comprising: requesting toaccess a slice of the media item which is generated from a selection ofat least one of evenly-divided time chunks of the media item; receivinga price for the slice of the media item from a media access controller;transmitting a selection of and a payment for the slice of the mediaitem for the price to the media access controller; receiving anactivated accessible code of a bite address of the slice of the mediaitem from the media access controller, wherein the bite address of theslice of the media item is determined by combining an address of themedia item indicating a location where the media item is stored with anidentification number of the slice of the media item.
 9. The method ofclaim 8, further comprising accessing and playing the slice of the mediaitem by clicking on the accessible code.
 10. The method of claim 9,further comprising receiving an option to purchase other slices of themedia item while accessing and playing the slice of the media item. 11.A non-transitory tangible storage medium storing a computer program foraccessing a media item in slices, the computer program comprisingexecutable instructions that cause a computer to: receive a request toaccess a slice of the media item from a client device; generate theslice of the media item by dividing the media item into time chunks andselecting at least one of the time chunks for the slice; determine anaddress of the media item indicating a location where the media item isstored; determine an identification number and a price of the slice ofthe media item; combine the address of the media item with theidentification number of the slice of the media item to generate a biteaddress of the slice of the media item; transmit the price for the sliceof the media item to the client device; receive a selection of the sliceof the media item for the price from the client device; and activate andtransmit an accessible code of the bite address to the client deviceupon receiving a payment of the price from the client device.
 12. Thenon-transitory tangible storage medium of claim 11, wherein theexecutable instructions that cause the computer to combine the addressof the media item with the identification number of the slices comprisesexecutable instructions that cause the computer to append theidentification number of the slice to the end of the address of themedia item.
 13. The non-transitory tangible storage medium of claim 11,wherein the executable instructions that cause the computer to activatethe accessible code enable the client device to access the slice of themedia item by clicking on the accessible code at the client device. 14.The non-transitory tangible storage medium of claim 11, furthercomprising executable instructions that cause the computer to enable theclient device to access and play the slice of the media item.
 15. Thenon-transitory tangible storage medium of claim 14, further comprisingexecutable instructions that cause the computer to present to the clientdevice an option to purchase other slices of the media item while theclient device is playing the slice of the media item.
 16. Thenon-transitory tangible storage medium of claim 11, wherein theexecutable instructions that cause the computer to determine the priceof the slice of the media item comprises executable instructions thatcause the computer to calculate the number of the time chunks selectedfor the slice of the media item.